# -*- coding: UTF-8 -*-
"""
@File    ：13.文件.py
@Author  ：techPang
@Date    ：2025/1/23 13:20 
@Version ：1.0

open(name, mode, encoding)
name        文件位置
mode        打开方式(读、写、追加)
                r 以只读方式打开文件，如果文件不存在，则报错
                w 打开一个文件用于写入，会覆盖原有内容；如果文件不存在，创建新文件
                a 打开一个文件用于写入，会在原有内容后面追加写入；如果文件不存在，创建新文件
encoding    编码方式
"""

# -------------------------------------------文件r模式------------------------------------------------------
file1 = open("./test.txt", "r", encoding="utf-8")

# 读取文件 -read(num)，读取多少字节，如果不传入表示读取文件中所有的数据
# read、readLines、readLine尽量使用一次，因为下次读取会从第一次读取的内容后开始读取
# print(file1.read())

# 读取文件 -readLines()，读取文件所有内容，返回一个列表，每一行内容作为列表中的一个元素
# print(file1.readlines())

# 读取文件 -readLine()，每次读取一行内容
# print(file1.readline())

# for循环读取文件内容
# for line in file1:
#     print(line)

# 文件的关闭
# file1.close()

# with open，操作完成后会自动执行close，避免遗忘
with open("./test.txt", "r", encoding="utf") as f:
    for i in f:
        print(i)
        print(len(i))

# -------------------------------------------文件w模式------------------------------------------------------
file2 = open("./test1.txt", "w", encoding="utf-8")
# 写入操作，会覆盖之前的内容
file2.write("你过得还好吗")

# 刷新到磁盘，不刷新写入不到磁盘中，在close中内置了flush
# file2.flush()
file2.close()

# -------------------------------------------文件a模式------------------------------------------------------
file3 = open("./test2.txt", "a", encoding="utf-8")
# 写入操作，会覆在原有内容后追加新的内容
file3.write("\n什么时候会再见呢")

# 刷新到磁盘，不刷新写入不到磁盘中，在close中内置了flush
# file3.flush()
file3.close()



